package com.ruifu.proj.vo.ptmain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruifu.common.po.PmActiveMain;
import com.ruifu.common.po.PmPType;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class PmPtMainPanelVO {
    private Long ptId;  //任务ID，整型
    private Long projectId;//项目id

    private String ptPtm;
    private Long ptPId;  //项目父任务ID，整型
    private Integer ptProgress;//任务进度
    private String ptCode;//任务编号
    private String ptName;//任务名称
    private String ptPCode;//项目编号
    private String projectName;//所属项目名称
    private String ptSpecial;//紧急程度
    private String ptSpecialStr;//紧急程度解释
    private String ptStatus;//状态
    private String ptStatusStr;//状态解释
    private String ptAssignors;//委托人链(截取委托链条最后一个人进行展示)
    private Long ptAssignorId;//委托人
    private Long ptCreator;//创建人
    private Long ptExecuter;//责任人
    @JsonFormat(pattern = "yyyy/MM/dd")
    private Date ptPlanStart;//计划开始时间
    @JsonFormat(pattern = "yyyy/MM/dd")
    private Date ptPlanEnd;//计划结束时间
    private String ptRemark;//说明

    private Integer permission;  //权限十进制

    /**
     * 时间锁定  0 代表未锁定， 1 代表锁定
     */
    private String ptDatelock;

    /**
     * 数值枚举类型，4，绝密；3，机密；2，保密；1，一般；
     */
    private Long ptSafeLevel;

    /**
     * 项目类型
     */
    private PmPType pmPType;

    /**
     * 实际开始时间(启动)
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date pvStartTime;

    /**
     * 实际结束时间(审批通过后)
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date pvEndTime;
    @JsonIgnore
    private List<PmActiveMain> pmActiveMainList;

    public String getPtStatusStr() {
        if ("A".equals(ptStatus)) {
            ptStatusStr = "未下达";
        } else if ("B".equals(ptStatus)) {
            ptStatusStr = "待启动";
        } else if ("C".equals(ptStatus)) {
            ptStatusStr = "启动中";
        } else if ("D".equals(ptStatus)) {
            ptStatusStr = "待审核";
        } else if ("E".equals(ptStatus)) {
            ptStatusStr = "已关闭";
        } else if ("F".equals(ptStatus)) {
            ptStatusStr = "已中止";
        } else if ("TA".equals(ptStatus)) {
            ptStatusStr = "未启用";
        } else if ("TB".equals(ptStatus)) {
            ptStatusStr = "启用";
        } else if ("TC".equals(ptStatus)) {
            ptStatusStr = "停用";
        } else if (ptStatus.contains("P")) {
            //状态中包含P即暂停 -> AP,BP,CP,DP,APP,...
            ptStatusStr = "冻结";
        }
        return ptStatusStr;
    }

    public String getPtSpecialStr() {
        //‘M’重要；‘N’一般；
        if ("M".equals(ptSpecial)) {
            ptSpecialStr = "重要";
        } else if ("N".equals(ptSpecial)) {
            ptSpecialStr = "一般";
        }
        return ptSpecialStr;
    }
}
